package codename.carrot.bomberman.game.listener;

import codename.carrot.bomberman.models.Player;

/**
 *  Interface for classes that wants to listen to changes to more specific player movements
 * @author Group A4
 *
 */
public interface PlayerPositionListener {
    /**
     *  Notification for when a player has moved from a x-coordinate (on the grid)  to another
     * @param xCoorGrid the new x-coordinate of the player
     * @param player the player that changed x-coordinate
     */
    public void onXcoorGridChanged(int xCoorGrid, Player player);
    
    /**
     * Notification for when a player has moved from an y-coordinate (on the grid) to another 
     * @param yCoorGrid the new y-coordinate of the player
     * @param player the player that changed y-coordinate
     */
    public void onYCoorGridChanged(int yCoorGrid, Player player);
    
    /**
     *  Notification for when a player stops moving
     * @param xCoorGrid the x-coordinate for final position of movement
     * @param yCoorGrid the y-coordinate for final position of movement
     * @param player the player that stopped moving
     */
    public void onMovementEnds(int xCoorGrid, int yCoorGrid, Player player);
    
    /**
     *  Notification for when a player starts moving
     * @param xCoorGrid the x-coordinate for original position of movement
     * @param yCoorGrid the y-coordinate for original position of movement
     * @param player the player that stopped moving
     */
    public void onMovementBegins(int xCoorGrid, int yCoorGrid, Player player);
}
